bitkeeper revision 1.1159.1.550 (4208ff07n_vZmQRm3MGLW7fSFD_y4g)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Tue, 8 Feb 2005 18:03:51 +0000 (18:03 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Tue, 8 Feb 2005 18:03:51 +0000 (18:03 +0000)
Small naming cleanup. p.t. 'entries' and 'shift' macros now have same
naming style.
Signed-off-by: keir.fraser@cl.cam.ac.uk
xen/arch/x86/domain.c
xen/arch/x86/mm.c
xen/arch/x86/shadow.c
xen/arch/x86/x86_32/mm.c
xen/arch/x86/x86_64/mm.c
xen/include/asm-x86/page.h
xen/include/asm-x86/shadow.h
xen/include/asm-x86/x86_32/page.h
xen/include/asm-x86/x86_64/page.h

index a9c90476ab23e55df0aa668abd6acd9636e37554..b2c176f8cd01d1d0ee1ca3c76a52f5a08013697f 100644 (file)
@@ -329,7 +329,7 @@ static void monitor_mk_pagetable(struct exec_domain *ed)
     phys_table = (l2_pgentry_t *) map_domain_mem(pagetable_val(
                                         ed->arch.phys_table));
     memcpy(d->arch.mm_perdomain_pt, phys_table,
-           ENTRIES_PER_L1_PAGETABLE * sizeof(l1_pgentry_t));
+           L1_PAGETABLE_ENTRIES * sizeof(l1_pgentry_t));
 
     unmap_domain_mem(phys_table);
     unmap_domain_mem(mpl2e);
index bbeab6dd63ac88f233df104707c25da6fb469b62..1c030ffd1a2dffde1e65b83b835b37b34b53f0d8 100644 (file)
@@ -560,7 +560,7 @@ static int alloc_l1_table(struct pfn_info *page)
 
     pl1e = map_domain_mem(page_nr << PAGE_SHIFT);
 
-    for ( i = 0; i < ENTRIES_PER_L1_PAGETABLE; i++ )
+    for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ )
         if ( unlikely(!get_page_from_l1e(pl1e[i], d)) )
             goto fail;
 
@@ -600,7 +600,7 @@ static void free_l1_table(struct pfn_info *page)
 
     pl1e = map_domain_mem(page_nr << PAGE_SHIFT);
 
-    for ( i = 0; i < ENTRIES_PER_L1_PAGETABLE; i++ )
+    for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ )
         put_page_from_l1e(pl1e[i], d);
 
     unmap_domain_mem(pl1e);
@@ -1917,7 +1917,7 @@ void ptwr_flush(const int which)
      */
 
     pl1e = ptwr_info[cpu].ptinfo[which].pl1e;
-    for ( i = 0; i < ENTRIES_PER_L1_PAGETABLE; i++ )
+    for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ )
     {
         ol1e = ptwr_info[cpu].ptinfo[which].page[i];
         nl1e = pl1e[i];
@@ -1950,7 +1950,7 @@ void ptwr_flush(const int which)
              * reference counts are correct.
              */
             memcpy(&pl1e[i], &ptwr_info[cpu].ptinfo[which].page[i],
-                   (ENTRIES_PER_L1_PAGETABLE - i) * sizeof(l1_pgentry_t));
+                   (L1_PAGETABLE_ENTRIES - i) * sizeof(l1_pgentry_t));
             unmap_domain_mem(pl1e);
             ptwr_info[cpu].ptinfo[which].l1va = 0;
             UNLOCK_BIGLOCK(d);
@@ -2092,7 +2092,7 @@ int ptwr_do_page_fault(unsigned long addr)
     ptwr_info[cpu].ptinfo[which].pl1e = map_domain_mem(pfn << PAGE_SHIFT);
     memcpy(ptwr_info[cpu].ptinfo[which].page,
            ptwr_info[cpu].ptinfo[which].pl1e,
-           ENTRIES_PER_L1_PAGETABLE * sizeof(l1_pgentry_t));
+           L1_PAGETABLE_ENTRIES * sizeof(l1_pgentry_t));
     
     /* Finally, make the p.t. page writable by the guest OS. */
     pte |= _PAGE_RW;
@@ -2238,7 +2238,7 @@ void audit_domain(struct domain *d)
             case PGT_l1_page_table:
             case PGT_l2_page_table:
                 pt = map_domain_mem(pfn<<PAGE_SHIFT);
-                for ( i = 0; i < ENTRIES_PER_L1_PAGETABLE; i++ )
+                for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ )
                     if ( (pt[i] & _PAGE_PRESENT) &&
                          ((pt[i] >> PAGE_SHIFT) == xpfn) )
                         printk("     found dom=%d i=%x pfn=%lx t=%x c=%x\n",
@@ -2399,7 +2399,7 @@ void audit_domain(struct domain *d)
 #endif
             pt = map_domain_mem( pfn<<PAGE_SHIFT );
 
-            for ( i = 0; i < ENTRIES_PER_L1_PAGETABLE; i++ )
+            for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ )
             {
                 if ( pt[i] & _PAGE_PRESENT )
                 {
@@ -2540,7 +2540,7 @@ void audit_domain(struct domain *d)
 
             pt = map_domain_mem( pfn<<PAGE_SHIFT );
 
-            for ( i = 0; i < ENTRIES_PER_L1_PAGETABLE; i++ )
+            for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ )
             {
                 if ( pt[i] & _PAGE_PRESENT )
                 {
index 70ad4be686caacbbad39f1a34b87fa4bd407920c..3652022666495f151c76a5e5be843a462030cc4a 100644 (file)
@@ -121,7 +121,7 @@ static inline int clear_shadow_page(
     case PGT_l2_page_table:
         p = map_domain_mem((spage - frame_table) << PAGE_SHIFT);
         if ( shadow_mode(d) == SHM_full_32 )
-            memset(p, 0, ENTRIES_PER_L2_PAGETABLE * sizeof(*p));
+            memset(p, 0, L2_PAGETABLE_ENTRIES * sizeof(*p));
         else 
             memset(p, 0, DOMAIN_ENTRIES_PER_L2_PAGETABLE * sizeof(*p));
         unmap_domain_mem(p);
@@ -544,12 +544,12 @@ static void shadow_map_l1_into_current_l2(unsigned long va)
         __shadow_set_l2e(ed, va, sl2e);
 
         gpl1e = (unsigned long *) &(linear_pg_table[
-            (va>>L1_PAGETABLE_SHIFT) & ~(ENTRIES_PER_L1_PAGETABLE-1)]);
+            (va>>L1_PAGETABLE_SHIFT) & ~(L1_PAGETABLE_ENTRIES-1)]);
 
         spl1e = (unsigned long *) &(shadow_linear_pg_table[
-            (va>>L1_PAGETABLE_SHIFT) & ~(ENTRIES_PER_L1_PAGETABLE-1)]);
+            (va>>L1_PAGETABLE_SHIFT) & ~(L1_PAGETABLE_ENTRIES-1)]);
 
-        for ( i = 0; i < ENTRIES_PER_L1_PAGETABLE; i++ )
+        for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ )
             l1pte_propagate_from_guest(d, &gpl1e[i], &spl1e[i]);
     }
     else
@@ -847,7 +847,7 @@ static int check_l1_table(
     gpl1e = map_domain_mem(g2mfn << PAGE_SHIFT);
     spl1e = map_domain_mem(s2mfn << PAGE_SHIFT);
 
-    for ( i = 0; i < ENTRIES_PER_L1_PAGETABLE; i++ )
+    for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ )
         check_pte(d, &gpl1e[i], &spl1e[i], 1, i);
  
     unmap_domain_mem(spl1e);
index ba5ce4ff0de0a527ec326319f33b498f3ea855a8..f3545ffdb9e13c047086c12dd33d8d7991f36f0b 100644 (file)
@@ -30,7 +30,7 @@
 
 /* Map physical byte range (@p, @p+@s) at virt address @v in pagetable @pt. */
 int map_pages(
-    pagetable_t *pt,
+    root_pgentry_t *pt,
     unsigned long v,
     unsigned long p,
     unsigned long s,
@@ -327,7 +327,7 @@ void *memguard_init(void *heap_start)
     {
         l1 = (l1_pgentry_t *)heap_start;
         heap_start = (void *)((unsigned long)heap_start + PAGE_SIZE);
-        for ( j = 0; j < ENTRIES_PER_L1_PAGETABLE; j++ )
+        for ( j = 0; j < L1_PAGETABLE_ENTRIES; j++ )
             l1[j] = mk_l1_pgentry((i << L2_PAGETABLE_SHIFT) |
                                    (j << L1_PAGETABLE_SHIFT) | 
                                   __PAGE_HYPERVISOR);
index f8c48f7981375388cddf8e8997658d7dc8b55ff2..4183442635b97adcc5c862a621208f0bc60bada7 100644 (file)
@@ -38,7 +38,7 @@ void *safe_page_alloc(void)
 
 /* Map physical byte range (@p, @p+@s) at virt address @v in pagetable @pt. */
 int map_pages(
-    pagetable_t *pt,
+    root_pgentry_t *pt,
     unsigned long v,
     unsigned long p,
     unsigned long s,
@@ -119,8 +119,8 @@ void __init paging_init(void)
     unsigned long i, p, max;
 
     /* Map all of physical memory. */
-    max = ((max_page + ENTRIES_PER_L1_PAGETABLE - 1) & 
-           ~(ENTRIES_PER_L1_PAGETABLE - 1)) << PAGE_SHIFT;
+    max = ((max_page + L1_PAGETABLE_ENTRIES - 1) & 
+           ~(L1_PAGETABLE_ENTRIES - 1)) << PAGE_SHIFT;
     map_pages(idle_pg_table, PAGE_OFFSET, 0, max, PAGE_HYPERVISOR);
 
     /*
@@ -201,7 +201,7 @@ void subarch_init_memory(struct domain *dom_xen)
             continue;
         m2p_start_mfn = l2_pgentry_to_pfn(l2e);
 
-        for ( i = 0; i < ENTRIES_PER_L1_PAGETABLE; i++ )
+        for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ )
         {
             frame_table[m2p_start_mfn+i].count_info = PGC_allocated | 1;
             /* gdt to make sure it's only mapped read-only by non-privileged
@@ -303,7 +303,7 @@ void *memguard_init(void *heap_start)
     for ( i = 0; i < (xenheap_phys_end >> L2_PAGETABLE_SHIFT); i++ )
     {
         ALLOC_PT(l1);
-        for ( j = 0; j < ENTRIES_PER_L1_PAGETABLE; j++ )
+        for ( j = 0; j < L1_PAGETABLE_ENTRIES; j++ )
             l1[j] = mk_l1_pgentry((i << L2_PAGETABLE_SHIFT) |
                                    (j << L1_PAGETABLE_SHIFT) | 
                                   __PAGE_HYPERVISOR);
index 51aa0db52aab411ea39d7dd6c37d94fe7e954142..93801084f62f87051c7335e4accec90afb500f8e 100644 (file)
@@ -9,6 +9,13 @@
 #include <asm/x86_64/page.h>
 #endif
 
+/* Page-table type. */
+#ifndef __ASSEMBLY__
+typedef struct { unsigned long pt_lo; } pagetable_t;
+#define pagetable_val(_x)  ((_x).pt_lo)
+#define mk_pagetable(_x)   ( (pagetable_t) { (_x) } )
+#endif
+
 #ifndef __ASSEMBLY__
 #define PAGE_SIZE               (1UL << PAGE_SHIFT)
 #else
@@ -38,7 +45,7 @@
 #define DOMAIN_ENTRIES_PER_L2_PAGETABLE            \
   (HYPERVISOR_VIRT_START >> L2_PAGETABLE_SHIFT)
 #define HYPERVISOR_ENTRIES_PER_L2_PAGETABLE \
-  (ENTRIES_PER_L2_PAGETABLE - DOMAIN_ENTRIES_PER_L2_PAGETABLE)
+  (L2_PAGETABLE_ENTRIES - DOMAIN_ENTRIES_PER_L2_PAGETABLE)
 
 #ifndef __ASSEMBLY__
 #include <asm/processor.h>
@@ -51,7 +58,7 @@
 
 #define va_to_l1mfn(_va) (l2_pgentry_val(linear_l2_table[_va>>L2_PAGETABLE_SHIFT]) >> PAGE_SHIFT)
 
-extern pagetable_t idle_pg_table[ENTRIES_PER_PAGETABLE];
+extern root_pgentry_t idle_pg_table[ROOT_PAGETABLE_ENTRIES];
 
 extern void paging_init(void);
 
@@ -126,7 +133,7 @@ extern void zap_low_mappings(void);
 /* Map physical byte range (@p, @p+@s) at virt address @v in pagetable @pt. */
 extern int
 map_pages(
-    pagetable_t *pt,
+    root_pgentry_t *pt,
     unsigned long v,
     unsigned long p,
     unsigned long s,
index 7618c610f2be23f81f3a62c1236f6a81e43c330d..926526173c9a1f84bd678cb676196374e4955e88 100644 (file)
@@ -677,7 +677,7 @@ static inline void vmx_update_shadow_state(
 
     spl2e = (l2_pgentry_t *)map_domain_mem(smfn << PAGE_SHIFT);
     gpl2e = (l2_pgentry_t *)map_domain_mem(gpfn << PAGE_SHIFT);
-    memset(spl2e, 0, ENTRIES_PER_L2_PAGETABLE * sizeof(l2_pgentry_t));
+    memset(spl2e, 0, L2_PAGETABLE_ENTRIES * sizeof(l2_pgentry_t));
 
     ed->arch.shadow_vtable = spl2e;
     ed->arch.vpagetable = gpl2e; /* expect the guest did clean this up */
index 1c46ef1817ad0ce558fef564b70404159fd3c31d..9b5efe82b87a1546556421488d7b2cc8d57508c9 100644 (file)
@@ -3,19 +3,27 @@
 #ifndef __X86_32_PAGE_H__
 #define __X86_32_PAGE_H__
 
-#define L1_PAGETABLE_SHIFT       12
-#define L2_PAGETABLE_SHIFT       22
-#define PAGE_SHIFT               L1_PAGETABLE_SHIFT
+#define L1_PAGETABLE_SHIFT      12
+#define L2_PAGETABLE_SHIFT      22
+#define PAGE_SHIFT              L1_PAGETABLE_SHIFT
+#define ROOT_PAGETABLE_SHIFT    L2_PAGETABLE_SHIFT
 
-#define ENTRIES_PER_L1_PAGETABLE 1024
-#define ENTRIES_PER_L2_PAGETABLE 1024
+#define L1_PAGETABLE_ENTRIES    1024
+#define L2_PAGETABLE_ENTRIES    1024
+#define ROOT_PAGETABLE_ENTRIES  L2_PAGETABLE_ENTRIES
 
-#define __PAGE_OFFSET          (0xFC400000)
+#define __PAGE_OFFSET           (0xFC400000)
+
+#define PADDR_BITS              32
+#define VADDR_BITS              32
+#define PADDR_MASK              (~0UL)
+#define VADDR_MASK              (~0UL)
 
 #ifndef __ASSEMBLY__
 #include <xen/config.h>
 typedef struct { unsigned long l1_lo; } l1_pgentry_t;
 typedef struct { unsigned long l2_lo; } l2_pgentry_t;
+typedef l2_pgentry_t root_pgentry_t;
 #endif /* !__ASSEMBLY__ */
 
 /* Strip type from a table entry. */
@@ -40,17 +48,11 @@ typedef struct { unsigned long l2_lo; } l2_pgentry_t;
 
 /* Given a virtual address, get an entry offset into a page table. */
 #define l1_table_offset(_a) \
-  (((_a) >> L1_PAGETABLE_SHIFT) & (ENTRIES_PER_L1_PAGETABLE - 1))
+  (((_a) >> L1_PAGETABLE_SHIFT) & (L1_PAGETABLE_ENTRIES - 1))
 #define l2_table_offset(_a) \
   ((_a) >> L2_PAGETABLE_SHIFT)
 
 /* Given a virtual address, get an entry offset into a linear page table. */
 #define l1_linear_offset(_a) ((_a) >> PAGE_SHIFT)
 
-/* Root page-table definitions. */
-#define pagetable_t l2_pgentry_t
-#define pagetable_val(_x)  ((_x).l2_lo)
-#define mk_pagetable(_x)   ( (l2_pgentry_t) { (_x) } )
-#define ENTRIES_PER_PAGETABLE ENTRIES_PER_L2_PAGETABLE
-
 #endif /* __X86_32_PAGE_H__ */
index 7d0cc84e329e613e9e9d512f2f8f93cc3086de6e..318df434fc94789342bada30da25fc2298aedf10 100644 (file)
@@ -3,18 +3,20 @@
 #ifndef __X86_64_PAGE_H__
 #define __X86_64_PAGE_H__
 
-#define L1_PAGETABLE_SHIFT       12
-#define L2_PAGETABLE_SHIFT       21
-#define L3_PAGETABLE_SHIFT       30
-#define L4_PAGETABLE_SHIFT       39
-#define PAGE_SHIFT               L1_PAGETABLE_SHIFT
+#define L1_PAGETABLE_SHIFT      12
+#define L2_PAGETABLE_SHIFT      21
+#define L3_PAGETABLE_SHIFT      30
+#define L4_PAGETABLE_SHIFT      39
+#define PAGE_SHIFT              L1_PAGETABLE_SHIFT
+#define ROOT_PAGETABLE_SHIFT    L4_PAGETABLE_SHIFT
 
-#define ENTRIES_PER_L1_PAGETABLE 512
-#define ENTRIES_PER_L2_PAGETABLE 512
-#define ENTRIES_PER_L3_PAGETABLE 512
-#define ENTRIES_PER_L4_PAGETABLE 512
+#define L1_PAGETABLE_ENTRIES    512
+#define L2_PAGETABLE_ENTRIES    512
+#define L3_PAGETABLE_ENTRIES    512
+#define L4_PAGETABLE_ENTRIES    512
+#define ROOT_PAGETABLE_ENTRIES  L4_PAGETABLE_ENTRIES
 
-#define __PAGE_OFFSET          (0xFFFF830000000000)
+#define __PAGE_OFFSET           (0xFFFF830000000000)
 
 /* These may increase in future (phys. bits in particular). */
 #define PADDR_BITS              40
@@ -28,6 +30,7 @@ typedef struct { unsigned long l1_lo; } l1_pgentry_t;
 typedef struct { unsigned long l2_lo; } l2_pgentry_t;
 typedef struct { unsigned long l3_lo; } l3_pgentry_t;
 typedef struct { unsigned long l4_lo; } l4_pgentry_t;
+typedef l4_pgentry_t root_pgentry_t;
 #endif /* !__ASSEMBLY__ */
 
 /* Strip type from a table entry. */
@@ -64,21 +67,15 @@ typedef struct { unsigned long l4_lo; } l4_pgentry_t;
 
 /* Given a virtual address, get an entry offset into a page table. */
 #define l1_table_offset(_a) \
-  (((_a) >> L1_PAGETABLE_SHIFT) & (ENTRIES_PER_L1_PAGETABLE - 1))
+  (((_a) >> L1_PAGETABLE_SHIFT) & (L1_PAGETABLE_ENTRIES - 1))
 #define l2_table_offset(_a) \
-  (((_a) >> L2_PAGETABLE_SHIFT) & (ENTRIES_PER_L2_PAGETABLE - 1))
+  (((_a) >> L2_PAGETABLE_SHIFT) & (L2_PAGETABLE_ENTRIES - 1))
 #define l3_table_offset(_a) \
-  (((_a) >> L3_PAGETABLE_SHIFT) & (ENTRIES_PER_L3_PAGETABLE - 1))
+  (((_a) >> L3_PAGETABLE_SHIFT) & (L3_PAGETABLE_ENTRIES - 1))
 #define l4_table_offset(_a) \
-  (((_a) >> L4_PAGETABLE_SHIFT) & (ENTRIES_PER_L4_PAGETABLE - 1))
+  (((_a) >> L4_PAGETABLE_SHIFT) & (L4_PAGETABLE_ENTRIES - 1))
 
 /* Given a virtual address, get an entry offset into a linear page table. */
 #define l1_linear_offset(_a) (((_a) & VADDR_MASK) >> PAGE_SHIFT)
 
-/* Root page-table definitions. */
-#define pagetable_t l4_pgentry_t
-#define pagetable_val(_x)  ((_x).l4_lo)
-#define mk_pagetable(_x)   ( (l4_pgentry_t) { (_x) } )
-#define ENTRIES_PER_PAGETABLE ENTRIES_PER_L4_PAGETABLE
-
 #endif /* __X86_64_PAGE_H__ */